package com.wtwd.campus.utils;

import com.google.common.util.concurrent.ThreadFactoryBuilder;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;

public class MyThreadPool {

//    private static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("push-pool-%d").build();
//
//    private static ExecutorService pool = new ThreadPoolExecutor(4, 4, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(1024)
//            , namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
//
//    /**
//     * 进行推送
//     *
//     * @param map
//     */
//    public static void pushMessage(Map<String, Object> map) {
//        List<String> openIdList = (List<String>) map.get("list");
//        //num为需要开启的线程数
//        int num = 1;
//        int size = openIdList.size();
//        // 获取执行的线程数目
//        if(size > 0 && size < 80){
//            num = 1;
//        }else if(size >= 80 && size < 300){
//            num = 2;
//        }else if(size >= 300 && size < 600){
//            num = 3;
//        }else if(size >= 600){
//            num = 4;
//        }
//        int step = openIdList.size() / num;
//        List<List<String>> result = new ArrayList<>();
//        for (int i = 0; i < num; i++) {
//            List<String> strings;
//            if (i == num - 1) {
//                strings = openIdList.subList(i * step, openIdList.size());
//            } else {
//                strings = openIdList.subList(i * step, (i + 1) * step);
//            }
//            result.add(strings);
//        }
//        result.stream().forEach(e -> {
//            map.put("divideList", e);
//            //用线程进行推送
//            pool.execute(new MyThread(map));
//        });
//    }
}
